package app.maker.entity;

import java.io.Serializable;

import javax.persistence.*;

import java.util.List;


/**
 * The persistent class for the fournisseur database table.
 * 
 */
@Entity
@Table(name="fournisseur")

@NamedQueries({
	@NamedQuery(name="Fournisseur.findAll", query="SELECT f FROM Fournisseur f"),
	@NamedQuery(name = "Fournisseur.findFournisseurByName", query = "SELECT f FROM Fournisseur f WHERE f.nom = :param") })
public class Fournisseur implements Serializable {
	private static final long serialVersionUID = 1L;
	private int idFournisseur;
	private String adresse;
	private String email;
	private String nom;
	private String telephone;
	private List<Produit> produits;

	public Fournisseur() {
	}


	@Id
	@GeneratedValue(strategy=GenerationType.AUTO)
	@Column(unique=true, nullable=false)
	public int getIdFournisseur() {
		return this.idFournisseur;
	}

	public void setIdFournisseur(int idFournisseur) {
		this.idFournisseur = idFournisseur;
	}


	@Column(nullable=false, length=255)
	public String getAdresse() {
		return this.adresse;
	}

	public void setAdresse(String adresse) {
		this.adresse = adresse;
	}


	@Column(nullable=false, length=255)
	public String getEmail() {
		return this.email;
	}

	public void setEmail(String email) {
		this.email = email;
	}


	@Column(nullable=false, length=255, unique=true)
	public String getNom() {
		return this.nom;
	}

	public void setNom(String nom) {
		this.nom = nom;
	}


	@Column(nullable=false, length=20)
	public String getTelephone() {
		return this.telephone;
	}

	public void setTelephone(String telephone) {
		this.telephone = telephone;
	}


	//bi-directional many-to-one association to Produit
	@OneToMany(mappedBy="fournisseur")
	public List<Produit> getProduits() {
		return this.produits;
	}

	public void setProduits(List<Produit> produits) {
		this.produits = produits;
	}

	public Produit addProduit(Produit produit) {
		getProduits().add(produit);
		produit.setFournisseur(this);

		return produit;
	}

	public Produit removeProduit(Produit produit) {
		getProduits().remove(produit);
		produit.setFournisseur(null);

		return produit;
	}

}